# -*- coding: utf-8 -*-

import cv2 as cv

img = cv.imread("photos/dog.jpg")
cv.imshow("dog", img)

# BGR to Grayscale
# 灰度图：每个像素[0,255]
# 根据人眼敏感度，把RGB图片转换为灰度图，不是简单把RGB每个通道取平均值
# 而是：Y = 0.299*R + 0.587*G + 0.114*B
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow("Gray", gray)

# BGR to HSV
# HSV 是为了数字化图像提出来了，不能很好的表示人眼解释图像过程
# H (Hue)色相:[0,360]
# S (Saturation)饱和度，即色彩纯净度，0饱和度为白色
# V (Value/Brightness):明度 0明度为纯黑色

# 在OpenCV中，颜色范围：
# H = [0,179]
# S = [0,255]
# V = [0,255]
hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)
cv.imshow("HSV", hsv)

# BGR to LAB
# Lab：颜色之间的欧式距离有具体含义–距离越大，人眼感官两种颜色差距越远
# L 通道：像素亮度，上白下黑 中间灰
# a 通道：左绿 右红
# b 通道：一端纯蓝，一端纯黄
lab = cv.cvtColor(img, cv.COLOR_BGR2LAB)
cv.imshow("LAB", lab)

# BGR to RGB
rgb = cv.cvtColor(img, cv.COLOR_BGR2RGB)
cv.imshow("RGB", rgb)

cv.waitKey(0)

import matplotlib.pyplot as plt

plt.figure()
plt.subplot(1,2,1)
plt.imshow(img)
plt.subplot(1,2,2)
plt.imshow(rgb)
plt.show()

